package cho114366.basic;

import java.util.Iterator;
import java.util.Scanner;

public class J23_MemberMain {

	private static Scanner sc = new Scanner(System.in);
	private static J23_MemberService srv = new J23_MemberDAO();

	// MemberDAO는 MemberService를 구현한
	// 클래스이므로 객체 생성시 객체유형을 인터페이스로 정의할 수 있음

	private static final String TITLE = "-=회원관리 프로그램=-";
	private static final String MENU = "1) 회원추가  2) 회원전체조회  3) 회원상세조회 4) 회원수정  5) 회원탈퇴  0) 종료";
	private static final String ADDMSG = "아이디 주민번호 패스워드 우편번호 주소 전화번호 휴대폰번호 마일리지 결제방법 순으로 입력하세요 ";
	private static final String ADDOK = "성공적으로 회원가입이 완료되었습니다.";
	private static final String UPDMSG1 = "수정할 회원 아이디를 입력하세요";
	private static final String UPDMSG2 = "비밀번호 우편번호 주소 전화번호 휴대폰 결제방법 순으로 입력하세요";
	private static final String DELMSG = "삭제할 회원 아이디를 입력하세요";
	private static final String UPDOK = "성공적으로 회원정보 수정이 완료되었습니다.";
	private static final String DELOK = "성공적으로 회원정" + "" + "보 삭제가 완료되었습니다.";
	private static final String EXITOK = "프로그램을 종료합니다.";
	private static final String ERRMSG = "잘못된 코드를 입력하셨습니다.";
	private static final String READMSG = "상세 조회할 회원아이디를 입력하세요";

	public static void main(String[] args) {
		// 회원 관리 프로그램
		System.out.println(TITLE);
		while (true) {
			System.out.println(MENU);
			switch (sc.next()) {
			case "1":
				addMember();
				break; // 회원가입
			case "2":
				readMember();
				break;// 전체조회
			case "3":
				readOneMember();
				break;// 상세조회
			case "4":
				modifiMember();
				break;// 회원수정
			case "5":
				deleteMember();
				break;// 회원삭제
			case "0":
				exitMember();
				break;// 종료
			default:
				System.out.println(ERRMSG);
			}// switch
		}// while
	}// main

	private static void exitMember() {
		sc.close();
		System.out.println(EXITOK);
		System.exit(0);

	}

	private static void deleteMember() {
		readMember(); // 삭제전 전체데이터 출력
		System.out.println(DELMSG);
		String userid = sc.next();
		if (srv.deleteMember(userid) > 0)

		{
			System.out.println(DELOK);
		}

	}

	private static void modifiMember() {
		readMember(); // 수정전 전체데이터 출력
		System.out.println(UPDMSG1);
		String userid = sc.next();
		System.out.println(UPDMSG2);
		J23Member m = new J23Member(userid, null, sc.next(), sc.next(),
				sc.next(), sc.next(), sc.next(), sc.next());
		if (srv.updateMember(m) > 0)
			System.out.println(UPDOK);

	}

	private static void readOneMember() {
		readMember();
		System.out.println(READMSG);
		String userid = sc.next();
		J23Member m = srv.readOneMember(userid);

	}

	private static void readMember() {
		Iterator<J23Member> iter = srv.readMember().iterator();
		while (iter.hasNext()) {
			System.out.println(iter.next());

		}
	}

	private static void addMember() {
		System.out.println(ADDMSG);
		J23Member m = new J23Member(sc.next(), sc.next(), sc.next(), sc.next(),
				sc.next(), sc.next(), sc.next(), sc.next());
		if (srv.insertMember(m) > 0) {
			System.out.println(ADDOK);
		}

	}

}
